package accounts

import (
	"context"

	"gitee.com/djaf/my-certs/app/data/dxo"
	"gitee.com/djaf/my-certs/app/web/dto"
)

// Service : Service for Accounts
type Service interface {
	Insert(ctx context.Context, item *dto.Account) (*dto.Account, error)

	SignUp(ctx context.Context, id dxo.AccountID, item *dto.Account) (*dto.Account, error)

	Update(ctx context.Context, id dxo.AccountID, item *dto.Account) (*dto.Account, error)

	Remove(ctx context.Context, id dxo.AccountID) error

	Find(ctx context.Context, id dxo.AccountID) (*dto.Account, error)

	GetCurrent(ctx context.Context) (*dto.Account, error)

	List(ctx context.Context, q *Query) ([]*dto.Account, error)
}
